<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.Practices.Mobile.PasswordAuthentication</name>
    </assembly>
    <members>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.ExceptionByteArrayValueMustBeGreaterThanZeroBytes">
            <summary>
              Looks up a localized string similar to Byte array value must not be empty..
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.InvalidHexString">
            <summary>
              Looks up a localized string similar to Invalid hex string..
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.InvalidVersion">
            <summary>
              Looks up a localized string similar to The version of the encrypted section doesn&apos;t match the expected version..
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.StringNotEmpty">
            <summary>
              Looks up a localized string similar to String cannont be empty..
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.Win32Error">
            <summary>
              Looks up a localized string similar to Error in call to {0}: {1}.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.Properties.Resources.Win32HResultMessage">
            <summary>
              Looks up a localized string similar to Error in call to {0}:{1}.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.IIdentity.AuthenticationType">
            <summary>
            	Reports the type of authentication being provided by the object that implements this interface.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.IIdentity.IsAuthenticated">
            <summary>
            	Reports whether or not the identity is authenticated.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.IIdentity.Name">
            <summary>
            	Name of the user represented by the identity.
            </summary>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider">
            <summary>
            	This abstract class handles much of the work around acquiring and releasong of cryptographic
            	contexts. Currently the only subclass is the <see cref="!:AesRsaCryptographyProvider"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.#ctor(System.String)">
            <summary>
            	Constructs this instance, then calls the <see cref="M:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.AcquireContext"/> method.
            </summary>
            <param name="providerType">Type of the provider you want to create.</param>
            <param name="containerName">Name of the container you want to acquire.</param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.AcquireContext">
            <summary>
            	This method is called by the constructor to acquire the context. By default, it
            	will attempt to open the keystore with the name you provided in the constructor.
            	If a keystore with that name doesn't exist, one will be created.
            </summary>
            <returns>Handle to the provider acquired with a call to CryptAcquireContext.</returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.Dispose">
            <summary>
            	Release the keystore. If the <see cref="P:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.DeleteKeysetOnDispose"/> property is set to
            	true (the default), the keystore will be deleted at the same time.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.DeleteKeysetOnDispose">
            <summary>
            	Gets or sets whether to delete the keystore when this class is disposed.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider.ProviderHandle">
            <summary>
            	Handle to the provider instance returned by the AcquireContext call in the constructor.
            </summary>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1">
            <summary>
            	Provides easier access to segments of a larger array.
            </summary>
            <typeparam name="T">The type of the array elements.</typeparam>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1.#ctor(`0[],System.Int32,System.Int32)">
            <summary>
            	Creates a new instance that refers to part of a larger array.
            </summary>
            <param name="array">The full array.</param>
            <param name="offset">Offset into the full array for the first element of this subset.</param>
            <param name="count">Length of the subset.</param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1.#ctor(`0[],System.Int32)">
            <summary>
            	Creates a new subset that refers to the array starting at <paramref name="offset"/> and
            	continuing to the end of the array.
            </summary>
            <param name="array"></param>
            <param name="offset"></param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1.op_Implicit(Microsoft.Practices.Mobile.PasswordAuthentication.SubArray{`0})~`0[]">
            <summary>
            	Allows you to use the sub array in places where an array of type <typeparamref name="T"/>.</summary>
            <param name="sa"></param>
            <returns>Sub array.</returns>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1.Count">
            <summary>
            	Number of elements in the sub array.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1.Item(System.Int32)">
            <summary>
            	Gets an element of the array.
            </summary>
            <param name="index">Index into the array. 0 refers to the first element in the subset.</param>
            <returns>One element from the array.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is outside the sub-range.</exception>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.SubArray`1.Array">
            <summary>
            	Returns a copy of the sub array.
            </summary>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility">
            <summary>
            <para>Common Cryptography methods.</para>
            </summary>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.CompareBytes(System.Byte[],System.Byte[])">
            <summary>
            <para>Determine if two byte arrays are equal.</para>
            </summary>
            <param name="byte1">
            <para>The first byte array to compare.</para>
            </param>
            <param name="byte2">
            <para>The byte array to compare to the first.</para>
            </param>
            <returns>
            <para><see langword="true"/> if the two byte arrays are equal; otherwise <see langword="false"/>.</para>
            </returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetBytesFromHexString(System.String)">
            <summary>
            <para>Returns a byte array from a string representing a hexidecimal number.</para>
            </summary>
            <param name="hexidecimalNumber">
            <para>The string containing a valid hexidecimal number.</para>
            </param>
            <returns><para>The byte array representing the hexidecimal.</para></returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetHexStringFromBytes(System.Byte[])">
            <summary>
            <para>Returns a string from a byte array represented as a hexidecimal number (for example: 0F351A).</para>
            </summary>
            <param name="bytes">
            <para>The byte array to convert to forat as a hexidecimal number.</para>
            </param>
            <returns>
            <para>The formatted representation of the bytes as a hexidecimal number.</para>
            </returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.CombineBytes(System.Byte[],System.Byte[])">
            <summary>
            <para>Combines two byte arrays into one.</para>
            </summary>
            <param name="buffer1"><para>The prefixed bytes.</para></param>
            <param name="buffer2"><para>The suffixed bytes.</para></param>
            <returns><para>The combined byte arrays.</para></returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetRandomBytes(System.Int32)">
            <summary>
            Creates a cryptographically strong random set of bytes.
            </summary>
            <param name="size">The size of the byte array to generate.</param>
            <returns>The computed bytes.</returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetRandomBytes(System.Byte[])">
            <summary>
            <para>Fills a byte array with a cryptographically strong random set of bytes.</para>
            </summary>
            <param name="bytes"><para>The byte array to fill.</para></param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.ZeroOutBytes(System.Byte[])">
            <summary>
            <para>Fills <paramref name="bytes"/> zeros.</para>
            </summary>
            <param name="bytes">
            <para>The byte array to fill.</para>
            </param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.Transform(System.Security.Cryptography.ICryptoTransform,System.Byte[])">
            <summary>
            Transforms an array of bytes according to the given cryptographic transform.
            </summary>
            <param name="transform"><see cref="T:System.Security.Cryptography.ICryptoTransform"/> used to transform the given <paramref name="buffer"/>.</param>
            <param name="buffer">Buffer to transform. It is the responsibility of the caller to clear this array when finished.</param>
            <returns>Transformed array of bytes. It is the responsibility of the caller to clear this byte array
            if necessary.</returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetString(System.Byte[])">
            <summary>
            	Provides a standard way to get a string from a set of Unicode bytes.
            </summary>
            <param name="bytes">The raw Unicode bytes.</param>
            <returns>The string derived from the bytes.</returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetBytes(System.String)">
            <summary>
            	Converts a string into a Unicode byte array.
            </summary>
            <param name="text">The string to convert to a byte array.</param>
            <returns>An array of Unicode bytes.</returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptographyUtility.GetBytes(System.UInt32)">
            <summary>
            	This is a helper method that converts an unsigned integer into an array of bytes.
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.AuthenticationToken">
            <summary>
            	This class allows you to check a username/password using a saved hash value instead of
            	saving the username/password.
            </summary>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.AuthenticationToken.#ctor(Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity)">
            <summary>
            	Creates a new token from an existing identity. Use this constructor to obtain a token that you
            	can save for later authentication.
            </summary>
            <param name="identity"></param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.AuthenticationToken.#ctor(System.String)">
            <summary>
            	Creates a new instance from a saved token. Use this constructor when you need to authenticate
            	an existing user against a saved token.
            </summary>
            <param name="token"></param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.AuthenticationToken.Authenticate(System.String,System.String,Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider)">
            <summary>
            	Checks to see if the user name and password provided result in the same hash as this
            	token.
            </summary>
            <param name="user">Name used to authenticate.</param>
            <param name="password">The password used to authenticate.</param>
            <param name="provider"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.AuthenticationToken.CalculateToken(Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity,System.Byte[],Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider)">
            <summary>
            	Creates a token from a user name, password-derived key, and salt.
            </summary>
            <param name="identity">The identity that provides the password-derived key and user name.</param>
            <param name="salt">Some random data.</param>
            <param name="provider">The cryptographic provider used for cyptographic functions.</param>
            <returns>Returns a byte array that is a concatination of the version (2 bytes), the salt, and the hash.</returns>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.AuthenticationToken.TokenData">
            <summary>
            	The "token" created from the identity. You can save this value for later use in
            	authenticating a user, in conjunction with decrypting data.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.IKeyProvider.CryptoKey">
            <summary>
            	Gets the key derived by the object.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.IKeyProvider.Provider">
            <summary>
            	Gets the provider used for generating the key.
            </summary>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.Guard">
            <summary>
            Common guard clauses.
            </summary>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.Guard.ArgumentNotNull(System.Object,System.String)">
            <summary>
            Checks an argument to ensure it isn't null.
            </summary>
            <param name="argumentValue">The argument value to check.</param>
            <param name="argumentName">The name of the argument.</param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.Guard.ArgumentNotNullOrEmptyString(System.String,System.String)">
            <summary>
            Checks a string argument to ensure it isn't null or empty.
            </summary>
            <param name="argumentValue">The argument value to check.</param>
            <param name="argumentName">The name of the argument.</param>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper">
            <summary>
            	This class provides a wrapper around native calls to Crypt APIs that we need for authentication and
            	key generation.
            </summary>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.#ctor(Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider)">
            <summary>
            	Creates a new instance.
            </summary>
            <param name="provider">
            	The cryptographic provider that provides both the key store and the algorithm.
            </param>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.ExportKeyBlob(System.IntPtr,System.IntPtr,Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.BlobType)">
            <summary>
            	This is a "managed" wrapper around the CryptExportKey function. It basically calls this function
            	and returns a byte array with the key data.
            </summary>
            <param name="hKey">The private key to export.</param>
            <param name="hExchangeKey">
            	The key used to encrypt the private key, or IntPtr.Zero if you don't want to encrypt the key.
            </param>
            <param name="type">The type of blob you want returned.</param>
            <returns>The key data.</returns>
            <exception cref="T:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeException">If one of the native calls failed.</exception>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.GetKeyBlobFromKeyData(System.Byte[],Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.AlgorithmId)">
            <summary>
            	This method takes the key and returns a simple blob. A simple blob is basically a header, an
            	algorithm ID, and then the key data itself. This is all defined in an article on MSDN:
            <para>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/simple_key_blobs.asp</para>
            </summary>
            <param name="keyData"></param>
            <param name="algid"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.GetHmacHash(System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            	Generates an keyed hash (HMAC) from data, salt, and a key. To obtain
            	the same hash you must supply the same data, salt, and key. This function
            	uses HMAC hashing with SHA1.
            </summary>
            <param name="data">The data to hash.</param>
            <param name="salt">
            	Salt to add to the hash to mitigate dictionary attacks. Recommended length
            	is 8 bytes (64 bits).
            </param>
            <param name="key">The key to use. Recommended length is 32 bytes (256 bits).</param>
            <returns>A keyed hash value.</returns>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.CryptNativeHelper.GetPasswordDerivedKey(System.String)">
            <summary>
            	Obtains a key from a password that you supply.
            </summary>
            <param name="password">A password.</param>
            <returns>Returns a key derived from this password.</returns>
        </member>
        <member name="T:Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity">
            <summary>
            	Provides an "identity" object that can derive a key from a username and password. This key is a
            	one-way key. In other words, given the key, you can't reconstruct the username or password.
            </summary>
        </member>
        <member name="M:Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity.#ctor(System.String,System.String,Microsoft.Practices.Mobile.PasswordAuthentication.RsaAesCryptographyProvider)">
            <summary>
            	Constructor, which creates a new key using the information you provide.
            </summary>
            <param name="userName">The string that represents the user.</param>
            <param name="password">The password to use in creating the key.</param>
            <param name="provider">The provider that will be used when deriving the key.</param>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity.CryptoKey">
            <summary>
            	Provides a cryptographic key with which the application can encrypt 
            	or decrypt sensitive data. Since this key is based on user/pin combination, 
            	it is not recommended to protect business data directly with this key; rather,
            	the application should use this key to protect the actual keys used for business
            	information, configuration, etc. In that way the user could change PIN with less
            	risk of losing the business data.
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity.Name">
            <summary>
            Member of IIdentity returns the user name provided when the identity was constructed
            </summary>
        </member>
        <member name="P:Microsoft.Practices.Mobile.PasswordAuthentication.PasswordIdentity.Provider">
            <summary>
            	Gets the provider that was passed in the constructor.
            </summary>
        </member>
    </members>
</doc>
